package com.candoit.webapps.pricing.model.opcional;

import javax.persistence.Column;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.MappedSuperclass;
import javax.persistence.Transient;

import com.candoit.webapps.pricing.model.PersistentAttributes;
import com.candoit.webapps.pricing.model.TipoLinea;

@MappedSuperclass
public abstract class Opcional extends PersistentAttributes{

	@Column(name = "nombre")
	protected String nombre;
	
	@ManyToOne
	@JoinColumn(name="tipo", referencedColumnName="id")
	protected TipoLinea tipo;
	
	@Transient
	protected Double margenUtilidad = 0.0;
	
	public abstract Double getCosto();
	
	public Double getPrecio() {
		Double mg = getMargenUtilidad(); 
		Double costo = getCosto();
		Double precio = costo/(1-mg);
		return precio;
	}

	public String getNombre() {
		return nombre;
	}
	
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public Double getMargenUtilidad() {
		return margenUtilidad;
	}
	public void setMargenUtilidad(Double margenUtilidad) {
		this.margenUtilidad = margenUtilidad;
	}
	public TipoLinea getTipo() {
		return tipo;
	}
	public void setTipo(TipoLinea tipo) {
		this.tipo = tipo;
	}
	
	@Override
	public String toString(){
		return this.getId()+" - "+this.nombre+ " - " + this.tipo;
	}
	
}
